ansible判断 出现FATAL all hosts have already failed -- aborting 错误

        今晚做ansible实验,验证到when判断ip的时候,遇到了个问题,就是使用ansible 127.0.0.1 -m setup 显示出来的内容并不像视频里面所显示的那样,每个值都以facter_开头的;也更找不到facter_ipaddress这个值,就是说使用facts ip判断条件是不能使用的?效果如下截图:

        然后去谷歌搜索了下,发现也不少人也遇到这个问题得不到解决。看了那些大神回复根本看不懂,还有个使用Python把值提取出来的,但是不懂Python,好无奈。。。。只能自己想办法了。

        最初试验的代码:

1
2
3
4
5
6
7
---
- hosts: testhosts
remote_user: root
gather_facts: True
tasks:
- shell: touch /tmp/when.txt
when: facter_ipaddress=="192.168.0.82"

        解决方案代码:

1
2
3
4
5
6
7
---
- hosts: testhosts
remote_user: root
gather_facts: True
tasks:
- shell: touch /tmp/when.txt
when: ansible_eth0.ipv4.address=="192.168.0.82"

        只是 facter_ipaddress变成了ansible_eth0.ipv4.address;至于为什么这样变? ansible X.X.X.X -m setup 探索一下就知道了。